// let obj = {
//     name:"吴亦凡",
//     age:33,
//     address:"监狱"
// }

// let obj: {
//     name:string,
//     age:number,
//     address:string
// } = {
//     name:"李锐锋",
//     age:33,
//     address:"北京大兴监狱"
// }

// 接口 interface 用来定义对象内部的类型注解，给对象起到约束作用
// 注意 按照规范 接口名字首字母大写

interface ObjType{
    readonly name:string, //只读属性 只能初始化时赋值，赋值后再也不可更改
    age:number,
    address:string
    sex?:string|number,  //可选属性
    [prop:string]:any //索引签名 作用 当我们需要一个接口当中 除了必选属性和可选属性以外，还允许我们添加一个任意属性
}
// 使用接口
let obj:ObjType={
    name:"吴亦凡",
    age:33,
    address:"监狱",
    sex:1
}
obj.one = 111;
obj.two = 222;
// obj.name ="李易峰"

interface ArrType{
    name:string,
    age:number

}

let arr:ArrType[] = [{name:"张三",age:222},{name:"李四",age:333}]

export {}